# -*- coding: UTF-8 -*-
"""
@File    ：3.继承特性.py
@Author  ：techPang
@Date    ：2025/2/6 14:37 
@Version ：1.0
"""


class Phone:
    IMEI = None  # 序列号
    producer = "BJ"  # 厂商

    def call_by_4g(self):
        print("4g通话")


class NFCReader:
    nfc_type = "第五代"
    producer = "BJ"
    def read_card(self):
        print("NFC读卡")

    def write_card(self):
        print("NFC写卡")


# 可以多继承，中间使用逗号隔开，如果父类中有相同的成员属性\方法，则以先继承的为主  左边的为主
# Python 引入了 MRO（Method Resolution Order）机制。MRO 定义了在多继承情况下，Python 解释器查找方法的顺序
# class Phone2025(Phone, NFCReader): 如果继承的内容已经够用，不需要添加新的功能，可以使用pass关键字来防止语法报错
class Phone2025(Phone, NFCReader):
    face_id = "10001"  # 面部识别id
    nfc_type = "第六代"    # 这个是父类中的属性，重新赋值即为复写

    def call_by_5g(self):
        print(f"2025年，开启5g通话{NFCReader.nfc_type}")  # 被复写的父类成员属性\方法可以使用super().或者父类名.继续调用


phone = Phone2025()
phone.call_by_4g()
phone.call_by_5g()
